<?php

/* -----------------------------------------------------------------------------------------
   $Id: categories.php 1302 2005-10-12 16:21:29Z mz $   

   XT-Commerce - community made shopping
   http://www.xt-commerce.com

   Copyright (c) 2003 XT-Commerce
   -----------------------------------------------------------------------------------------
   based on: 
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(categories.php,v 1.23 2002/11/12); www.oscommerce.com 
   (c) 2003	 nextcommerce (categories.php,v 1.10 2003/08/17); www.nextcommerce.org

   Released under the GNU General Public License 
   -----------------------------------------------------------------------------------------
   Third Party contributions:
   Enable_Disable_Categories 1.3        	Autor: Mikel Williams | mikel@ladykatcostumes.com

   Released under the GNU General Public License 
   ---------------------------------------------------------------------------------------*/
// reset var
$box_smarty = new smarty;
$box_content = '';
//$rebuild = false; //DokuMan - 2010-02-28 - fix Smarty cache error on unlink

$box_smarty->assign('language', $_SESSION['language']);
// set cache ID
if (!CacheCheck()) {
	$cache=false;
	$box_smarty->caching = 0;
	$cache_id = null; //DokuMan - 2010-02-26 - Undefined variable: cache_id
} else {
	$cache=true;
	$box_smarty->caching = 1;
	$box_smarty->cache_lifetime = CACHE_LIFETIME;
	$box_smarty->cache_modified_check = CACHE_CHECK;
	$cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].'-'.$cPath;
}

if(!$box_smarty->is_cached(CURRENT_MOBILE_TEMPLATE.'/boxes/box_categories.html', $cache_id) || !$cache){
$box_smarty->assign('tpl_path', 'templates/'.CURRENT_MOBILE_TEMPLATE.'/');
//$rebuild=true; //DokuMan - 2010-02-28 - fix Smarty cache error on unlink

// include needed functions
require_once (DIR_FS_CATALOG.'templates/'.CURRENT_MOBILE_TEMPLATE.'/source/inc/xtc_show_category.inc.php');
require_once (DIR_FS_INC.'xtc_has_category_subcategories.inc.php');
require_once (DIR_FS_INC.'xtc_count_products_in_category.inc.php');

$categories_string = '';
$group_check = ''; //DokuMan - 2010-02-28 - set undefined variable group_check
if (GROUP_CHECK == 'true') {
	$group_check = "and c.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
}
$categories_query = "select c.categories_id,
                                           cd.categories_name,
                                           c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd
                                           where c.categories_status = '1'
                                           and c.parent_id = '0'
                                           ".$group_check."
                                           and c.categories_id = cd.categories_id
                                           and cd.language_id='".(int) $_SESSION['languages_id']."'
                                           order by sort_order, cd.categories_name";
$categories_query = xtDBquery($categories_query);

while ($categories = xtc_db_fetch_array($categories_query, true)) {
	$foo[$categories['categories_id']] = array ('name' => $categories['categories_name'], 'parent' => $categories['parent_id'], 'level' => 0, 'path' => $categories['categories_id'], 'next_id' => false);

	if (isset ($prev_id)) {
		$foo[$prev_id]['next_id'] = $categories['categories_id'];
	}

	$prev_id = $categories['categories_id'];

	if (!isset ($first_element)) {
		$first_element = $categories['categories_id'];
	}
}

//------------------------
if ($cPath) {
	$new_path = '';
	$id = explode('_', $cPath); // Hetfield - 2009-08-18 - replaced deprecated function split with explode to be ready for PHP >= 5.3
	reset($id);
	while (list ($key, $value) = each($id)) {
		unset ($prev_id);
		unset ($first_id);
		$categories_query = "select c.categories_id, cd.categories_name, c.parent_id from ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd where c.categories_status = '1' and c.parent_id = '".$value."' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='".$_SESSION['languages_id']."' order by sort_order, cd.categories_name";
		$categories_query = xtDBquery($categories_query);
		$category_check = xtc_db_num_rows($categories_query, true);
		if ($category_check > 0) {
			$new_path .= $value;
			while ($row = xtc_db_fetch_array($categories_query, true)) {
				$foo[$row['categories_id']] = array ('name' => $row['categories_name'], 'parent' => $row['parent_id'], 'level' => $key +1, 'path' => $new_path.'_'.$row['categories_id'], 'next_id' => false);

				if (isset ($prev_id)) {
					$foo[$prev_id]['next_id'] = $row['categories_id'];
				}

				$prev_id = $row['categories_id'];

				if (!isset ($first_id)) {
					$first_id = $row['categories_id'];
				}

				$last_id = $row['categories_id'];
			}
			$foo[$last_id]['next_id'] = $foo[$value]['next_id'];
			$foo[$value]['next_id'] = $first_id;
			$new_path .= '_';
		} else {
			break;
		}
	}
}

xtc_show_category($first_element);

$box_smarty->assign('BOX_CONTENT', $categories_string); //DokuMan - 2010-03-02 - BOX_CONTENT on wrong position

}

// set cache ID
//BOF - DokuMan - 2010-02-28 - fix Smarty cache error on unlink
/*
if (!$cache || $rebuild) {
	$box_smarty->assign('BOX_CONTENT', $categories_string);
	if ($rebuild) $box_smarty->clear_cache(CURRENT_MOBILE_TEMPLATE.'/boxes/box_categories.html', $cache_id);
	$box_categories = $box_smarty->fetch(CURRENT_MOBILE_TEMPLATE.'/boxes/box_categories.html',$cache_id);
} else {
	$box_categories = $box_smarty->fetch(CURRENT_MOBILE_TEMPLATE.'/boxes/box_categories.html', $cache_id);
}
*/
if (!$cache) {
    $box_categories = $box_smarty->fetch(CURRENT_MOBILE_TEMPLATE.'/boxes/box_categories.html');
} else {
    $box_categories = $box_smarty->fetch(CURRENT_MOBILE_TEMPLATE.'/boxes/box_categories.html', $cache_id);
}
//EOF - DokuMan - 2010-02-28 - fix Smarty cache error on unlink

$smarty->assign('box_CATEGORIES', $box_categories);
?>